package event.numberevent;

import java.util.EventObject;

/**questa classe rappresenta il messaggio che deve essere spedito dal ListenedNumber fino ai vari ascoltatori dello stato
 * del numero. il messaggio consta principalmente di 3 valori:
 * <table border="1">
 *  <tr>
 *   <td>ATTRIBUTO</td>
 *   <td>TIPO</td>
 *   <td>DESCRIZIONE</td>
 *  </tr>
 *  <tr>
 *   <td>source</td>
 *   <td>Object</td>
 *   <td>indica il mittente dell'evento</td>
 *  </tr>
 *  <tr>
 *   <td>oldvalue</td>
 *   <td>NUMBER</td>
 *   <td>indica lo staot passato che il numero ha assunto</td>
 *  </tr>
 *  <tr>
 *   <td>actualvalue</td>
 *   <td>NUMBER</td>
 *   <td>indica lo stato corrente che il numero ha appena assunto</td>
 *  </tr>
 * </table>
 * 
 * @author koldar
 *
 * @param <NUMBER> indica la classe dei numeri in cui il ListenedNumber opera
 */
public class NumberEvent<NUMBER extends Number> extends EventObject{

	private static final long serialVersionUID = -2255038247311789026L;
	/**indica il valore del numero dopo la sua variazione*/
	private NUMBER actualvalue;
	/**indica il valore prima che il numero variasse*/
	private NUMBER oldvalue;
	
	/**
	 * @return the oldvalue
	 */
	public NUMBER getOldvalue() {
		return oldvalue;
	}
	public NumberEvent(Object source,NUMBER _actualvalue,NUMBER _oldvalue){
		super(source);
		this.actualvalue=_actualvalue;
		this.oldvalue=_oldvalue;
	}
	/**
	 * @return the actualvalue
	 */
	public NUMBER getActualvalue() {
		return actualvalue;
	}

}
